package ua.lviv.franko.solvers.twoDimention;

import ua.lviv.franko.integration.IFunction2D;

public class EquationParameters {

	// matrix for double derivaty element (diffusion)
	public IFunction2D	fKxx;
	public IFunction2D	fKxy;
	public IFunction2D	fKyy;
	public IFunction2D	fKyx;

	// vector for first derivaty element (advection)
	public IFunction2D	fPx;
	public IFunction2D	fPy;
	// reaction coef
	public IFunction2D	fQ;
	// inside power sources
	public IFunction2D	fF;

	public EquationParameters() {
	}

	public double F(double x, double y) {
		return fF.calculate(x, y);
	}

	public double Kxx(double x, double y) {
		return fKxx.calculate(x, y);
	}

	public double Kxy(double x, double y) {
		return fKxy.calculate(x, y);
	}

	public double Kyx(double x, double y) {
		return fKyx.calculate(x, y);
	}

	public double Kyy(double x, double y) {
		return fKyy.calculate(x, y);
	}

	public double Px(double x, double y) {
		return fPx.calculate(x, y);
	}

	public double Py(double x, double y) {
		return fPy.calculate(x, y);
	}

	public double Q(double x, double y) {
		return fQ.calculate(x, y);
	}

	public void setF(IFunction2D f) {
		this.fF = f;
	}

	public void setKxx(IFunction2D kxx) {
		this.fKxx = kxx;
	}

	public void setKxy(IFunction2D kxy) {
		this.fKxy = kxy;
	}

	public void setKyx(IFunction2D kyx) {
		this.fKyx = kyx;
	}

	public void setKyy(IFunction2D kyy) {
		this.fKyy = kyy;
	}

	public void setPx(IFunction2D px) {
		this.fPx = px;
	}

	public void setPy(IFunction2D py) {
		this.fPy = py;
	}

	public void setQ(IFunction2D q) {
		this.fQ = q;
	}

}
